package br.affCorp.view.impl;

import java.util.ArrayList;
import java.util.Collection;

import javax.faces.event.ActionEvent;

import org.ajax4jsf.model.KeepAlive;

import br.affCorp.controller.facade.impl.UsuarioFacade;
import br.affCorp.model.UsuarioDTO;
import br.affCorp.view.FacesAb;
import br.util.AFFCorpWebUtil;
import br.util.RelogioUtil;
import br.util.WebMessage;

@KeepAlive(ajaxOnly = true)
public class UsuarioPesquisaFaces extends FacesAb {

	private static final long serialVersionUID = 1L;

	private UsuarioFacade usuarioFacade;

	private Collection<UsuarioDTO> usuarioList;

	public UsuarioPesquisaFaces() {
		this.inicializarFaces();
	}

	protected void inicializarFaces() {
		this.inicializarDTO();
		this.inicializarLista();
		this.inicializarFacade();
	}

	protected void inicializarDTO() {
		// TODO Auto-generated method stub
	}

	protected void inicializarFacade() {
		usuarioFacade = new UsuarioFacade();
	}

	protected void inicializarLista() {
		usuarioList = new ArrayList<UsuarioDTO>();
	}

	public void pesquisar(ActionEvent event) {
		try {
			RelogioUtil relogio = new RelogioUtil();
			relogio.start();

			this.inicializarLista();

			String nickName = AFFCorpWebUtil.getRequestParameter("amigosInput");

			usuarioList = usuarioFacade.obterContatosDoOrkutPorFiltro(
					getUsuarioDTO(), nickName);

			relogio.stop();

			WebMessage.addInfo("amigos.orkut.obtidos.com.sucesso");
		} catch (Exception e) {
			WebMessage.addError(e);
		}
	}

	public Collection<UsuarioDTO> autocomplete(Object suggest) {
		String pref = (String) suggest;
		Collection<UsuarioDTO> result = usuarioFacade
				.obterContatosDoOrkutPorFiltro(getUsuarioDTO(), pref);

		return result;
	}

	public Collection<UsuarioDTO> getUsuarioList() {
		return usuarioList;
	}

	public void setUsuarioList(Collection<UsuarioDTO> usuarioList) {
		this.usuarioList = usuarioList;
	}

}
